package com.mymarkdown.app.interfaces;

import com.mymarkdown.app.model.UserSettingInfo;

import java.lang.reflect.Field;

/**
 * @author zenglun
 * @date 2021/12/15 5:36 下午
 * @description: TODO
 */
public interface HandlerSystemConfigChange {
    /**
     * 处理UserSettingInfo系统配置改变的接口
     * @param originalVal 该字段原先的值
     * @param newVal 该字段现在的值
     * @param field 被改变的字段
     * @param originalSettingInfo 原先的配置对象
     * @param userSettingInfo 现在的配置对象
     */
    void handler(Object originalVal, Object newVal, Field field, UserSettingInfo originalSettingInfo, UserSettingInfo userSettingInfo)throws Exception;

    /**
     * 处理发生异常时的清空
     * @param exception
     */
    void error(Exception exception) throws Exception;
}
